home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Meeting Pearls 2
/
Meeting Pearls Vol. II (1995)(GTI - Schatztruhe)[!].iso
/
Pearls
/
dev
/
GUI
/
BGUI
/
bgui.doc
< prev
next >
Wrap
Text File
|
1994-10-09
|
36KB
|
845 lines
`BGUI' release 1.0
******************
Preface
*******
`BGUI' release 1.0
(C) Copyright 1993-1994 Jaba Development
(C) Copyright 1993-1994 Jan van den Baard
Written using DICE v3.0 by
SNail: Jan van den Baard
Bakkerstraat 176
3082 HE Rotterdam
Holland
Fido: 2:286/407.53 (Jan van.den.Baard)
EMail: jaba@grafix.wlink.nl
EMail is preferred.
If you must use snail mail then please make it clear
when you absolutely need an anwser and (don't forget
this) include enough return postage.
User Manual
(C)Copyright 1993-1994 Jaba Development
__ __
/ / / \
__ / / / /\ \
_____\ \__/ /_/ /_/ /_____
(__________________________)
`BGUI', (C) Copyright 1993-1994 Jaba Development. All rights reserved. This
program is GiftWare. This means that if you want to use the programs you are
morally obligated to reward the author with a gift that, you think, matches
his efforts. If you cannot think of a gift (come on! be creative ;), a small
financial donation will always be gladly accepted.
I have thought about how to release this package for quite some time. My
initial thought went out to shareware but I soon forgot about this. Since most
of the libraries of this kind seem to be shareware I do not think that many
people like this simply because it's anoying to have to pay for a library if
you had to pay for the application as wel.
To avoid these problems I have decided to release this package as giftware
for people writing freely distributable software. With "freely distributable
software" I mean non-crippeled, free of charge software. Authors who wish to
use `BGUI' in shareware and/or commercial programs must pay for the usage of
`BGUI' before actually using it.
ShareWare and/or commercial usage is `not' allowed without:
1) Prior written permission from the author.
2) A small finacial donation of US$ 20,-, DM 30,- or HFL 30,-.
3) A free and registered copy of the product including free updates that
still make use of the library.
The idea behind this distribution policy is simple. You make money with the
aid of `BGUI'? I want to get my (very humble) share.
This software is not crippeled so when you register it you will not recieve
a key-file or an updated version. Registering simply buys you the right to use
this software in shareware and/or commercial applications.
Resonable, eh?
Introduction
************
`BGUI' is a BOOPSI based shared library contaning a number of BOOPSI
classes. It allows for easy creation and managing of font sensitive and size
adjustable GUI's on the Amiga. Hmm, where have I read something like this
before..., I hear you say.
YES! This is yet another GUI library. I know there has been a lot of
discussions about the usabillity and neccesity of GUI libraries on the nets
lately. Still, being the ignorant bugger that I am, at some point I felt it
was necessary to write yet another one.
Believe me when I say that `BGUI' was not intended to become a releasable
project. I started coding `BGUI' simply because I was amazed what MUI did
using BOOPSI. Therefore I started coding some BOOPSI classes as a learning
experience.
Hmmm... This is beginning to sound like an excuse... As if I did something
terrible ;)
The point is that, while working on BGUI, I saw many GUI libraries being
released and not one of them really seemed to take off. This made me think
that all this talk about "For every app I run I need to install a different
GUI library" really is bull. Please correct me if I'm wrong but I have yet to
see a program requiring a GUI library (with the exception of MUI ofcourse).
Sure there are a lot available but MUI is the only one which actually seems
to be used by the programmers.
This is the reason for `BGUI'. I have tryed to create a library which does
it's thing simular to MUI eliminating the biggest problems that programmers
seem to have with MUI. Meaning no fancy
background-pen-frame-text-image-whatever settings editor, not a zillion extra
images, no external class libraries etc.
`BGUI' is a single library which can be removed as easely as it can be
installed. It provides an easy way to create and control GUI's without becoming
excessive in what it does.
I guess time will tell if `BGUI' is going to be accepted or not...
Features
********
* Requires at least OS 2.04 (Yes, that is a feature :)
* Extends on the existing system gadgetclass and rootclass.
* Creates completely font sensitive GUI's.
* Supports sizable windows.
* AppWindow support.
* Titled group-frames and seperators.
* Supports OS 3.0 when available.
* Style Guide compliant.
* Keyboard control of most gadget classes.
* Several types of notification to create "self driven" GUI's.
* Easy intergration of third-party classes.
* Easy to make your class work directly with BGUI.
* Object oriented.
* Resonable speed, even with a 68000 processor.
* Relatively small library.
* Classes for easy filerequester and commodity creation.
* Seperate ARexx class including source code.
Requirements
************
`BGUI' requires at least version 2.04 of the operating system. It does `not'
run on 1.3 systems. Are there still people running 1.3?
`BGUI' also requires the following disk-based libraries to operate:
* gadtools.library (V37) (menus)
* asl.library (V37) (filereq class)
* commodities.library (V37) (commodities class)
The following libraries are not required but they will impose on the
functionality of the library when not available:
* locale.library (V38) (localized library strings)
* amigaguide.library (V37) (On-line help)
* workbench.library (V37) (App-window support)
It should not be a problem to use BGUI on a system with 512KByte but a
minimum of 1 Megabyte is suggested as a minimum.
Installation
************
The installation of BGUI is very simple. You can either use the Installer
utility by C= which will install the library for you or you can copy the
`bgui.library' to your LIBS: directory or into a directory you might have
setup for non-system libraries.
Where you put the headers/modules for the language you use is up to you.
Since the different compilers and users use different directory structures I
did not supply a script for you to install these. You'll have to do this by
hand.
Read Me
*******
* The bgui.library is a special library in the sence that it is a single
task library. This means that `every' task using the library must open
the library for itself. The library base pointer may `not' be shared
between different tasks.
The reason for this is that the library tracks information like window
bounds etc. This tracking is done for each individual task.
So if your code spawns a sub-task which needs the library, the sub-task
code must open the library for itself. It may not share it with the main
task.
* The object ID's (gadgets and menus) are restricted to the range 1..65535.
ID's smaller or larger than this are not allowed. This should not be a
problem :)
* When designing custom classes to work with BGUI please try to keep your
tag values and method ID's well out of the range of the BGUI tag values
and method ID's. Using values that conflict with the BGUI values may have
unexpected results.
Keyboard & Mouse
****************
Most of the BGUI gadget objects can be controlled by the keyboard. Usually
the key that is used to control an object is shown by an underlined character
in the object it's label. The objects can be controlled as follows:
* `Button' - Pressing the key will make the object appear pressed. If you
release the key the object appears normal again and the application is
signalled that the object was selected. When you accidentally activated
the button you can press SHIFT or ESC before releasing the key to cancel
the selection.
* `Toggle Button' - Pressing the key will toggle the selected state of the
toggle button.
* `CheckBox' - Pressing the key will toggle the selected state of the
checkbox object.
* `Prop (Scroller)' - Pressing the key will advance the knob position by
one page. When you press the key together with SHIFT the knob will backup
one page. You can reset the knob position when you are dragging the knob
with the mouse by clicking on the right mouse button.
* `Listview' - Pressing the key will select the next entry in the list
scrolling the entries when necessary. Pressing the key together with
SHIFT will select the previous entry. Read only listview objects will
simply scroll the list forward and backward.
* `Cycle' - Pressing the key will cycle one choise forward. Pressing the
key together with SHIFT will cycle one choise backward. Selecting the
gadget with the mouse while holding down the SHIFT key will also make the
gadget cycle backward. When the cycle gadget was setup to be a popup
gadget by the application programmer you can click inside the label area
to pop-up a menu from which you can select the desired item. You can
recognize a popup gadget by the imagery left of the label area. Normal
cycle gadgets have a circular arrow here and popup gadgets have a small
menu here.
* `Slider' - Pressing the key will advance the knob position by one.
Pressing the key together with shift will decrease the knob position by
one. You can reset the knob position when you are dragging the knob with
the mouse by clicking to on the right mouse button.
* `String,Integer' - Pressing the key will simply activate the gadget.
As you can see this behaviour is mostly style guide compliant with some
additional possibilities.
Disclaimer
**********
THERE IS NO WARRANTY FOR THE PROGRAMS, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS
AND/OR OTHER PARTIES PROVIDE THE PROGRAMS "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAMS IS WITH YOU.
SHOULD THE PROGRAMS PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
SERVICING, REPAIR OR CORRECTION.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY REDISTRIBUTE THE PROGRAMS AS
PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE
THE PROGRAMS (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED
INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
PROGRAMS TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER
PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
License
*******
This license applies to the product called `BGUI', a program for the Amiga
computer, published by Jan van den Baard under the concepts of GiftWare, and
the accompanying documentation, example files and anything else that comes
with the original distribution. The term "Program" below, refer to this
product. The term "Author" below, refers to "Jan van den Baard". The license
is addresses as "you".
* You may copy and distribute verbatim copies of the program's executable
code and documentation as you receive it, in any medium, provided that
you conspicuously and appropriately publish only the original, unmodified
program, with all copyright notices and disclaimers of warranty intact
and including all the accompanying documentation, example files and
anything else that came with the original.
* You may not copy and/or distribute this program without the accompanying
documentation and other additional files that came with the original. You
may not copy and/or distribute modified versions of this program.
* You may not copy, modify, sublicense, distribute or transfer the program
except as expressly provided under this license. Any attempt otherwise
to copy, modify, sublicense, distribute or transfer the program is void,
and will automatically terminate your rights to use the program under
this license. However, parties who have received copies, or rights to
use copies, from you under this license will not have their licenses
terminated so long as such parties remain in full compliance.
* By copying, distributing and/or using the program you indicate your
acceptance of this license to do so, and all its terms and conditions.
* Each time you redistribute the program, the recipient automatically
receives a license from the original licensor to copy, distribute and/or
use the program subject to these terms and conditions. You may not
impose any further restrictions on the recipients' exercise of the rights
granted herein.
* You may not disassemble, decompile, re-source or otherwise reverse
engineer the program.
* You are free to use the programs. If, after an evaluation period of up to
30 days, you find the programs useful enough to continue using them you
are morally, not lawfully, obligated to send the author a gift that, you
think, matches his efforts. Shareware or commercial usage of the programs
require registering. Please refer to the *note Preface::. section for
more information on registering.
* If you wish to incorporate parts of the programs into other programs,
write to the author to ask for permission. If you want to release your
programs as being Public Domain, FreeWare or GiftWare you are allowed to
include a copy of the "bgui.library" without the accompaning
documentation and files. ShareWare and Commercial distribution of the
programs is not allowed without prior written permission. Please refer to
the *note Preface::. section for more information on registering.
* You agree to cease distributing the program and data involved if
requested to do so by the author.
* You may charge a fee to recover distribution costs. The fee for diskette
distribution may not be more than the cost to obtain a public domain
diskette from Fred Fish.
History
*******
V37.11
======
* Started written history...
* Added the PROGRESS_Divisor tag for those extremely large values.
* BUG FIX: The progress class object could fill the gauge 1 pixel to far in
some cases. Added some extra code to prevent this from happening.
* Added the external class. This class makes it easy to include third party
classes like the colorwheel.gadget in a BGUI user interface. Still have
major problems handling notification though...
* Added the WM_ADDUPDATE method to the window class. This method makes it
possible to connect an external class object to another object to perform
simple icclass style notification.
V37.12
======
* BUG FIX: The layout engine sometimes layouted an object one or two
pixels to small. Added some extra code to prevent this from happening.
* Added the LGO_Align attribute to enhance the layout procedure.
* BUG FIX: The stringclass screwed up in computing it's minimum size when
it did not have a frame attached to it.
* BUG FIX: The layout engine sometimes GURU'd. Ooops. Should be fixed now.
* BUG FIX: The LISTV_RenderHook did not setup the entry correctly in the
lvRender structure.
* Added the LVM_REMENTRY method which can be used to remove single entries
from a listview.
* Added the LVM_REFRESH method to refresh the listview object after
adding/removing some entries.
* BUG FIX: The infoclass computed the maximum width of the formatted text
one pixel to small.
V37.13
======
* BUG FIX: The window class did not succeed in opening a screen size window
when the screen was smaller than it's default size.
* BUG FIX: The listview class did not refresh the list correctly when a
single entry was added.
* BUG FIX: Fixed the AddEntryVisible macro in bgui_macros.h.
* BUG FIX: Fixed a couple of bugs in the string class. Bugs found by Paul
weterings.
* BUG FIX: The Toggle() and KeyToggle() macros from bgui_macros.h did not
make it possible to set a toggle button selected by default. Note that
these macros require an additional parameter now. Bug found by Paul
Weterings.
V37.14
======
* BUG FIX: The online-help system of the gadget objects did not work at all.
* BUG FIX: The drop-box frame used incorrect spacing when the
FRF_THIN_FRAME flag was set. The radio-button frame totally ignored the
FRF_THIN_FRAME flag. Bugs found by Paul Weterings.
* Added the LISTV_TitleHook attribute to the listview class. This hook
makes it possible to render a title entry in the listview object. Can
come in handy with multi-column listviews.
* Re-arranged and adjusted the source for DICE V3.0 commercial. Boy oh boy
it really is picky about correct prototyping now...
* The list class now uses the memory pool routines from the 3.1 amiga.lib.
This means working memory pools even on 2.04.
* BUG FIX: The group class did not always yield the correct results when
requesting the minimum size of another group. This resulted in a
wrong-sized mx object when it had a label attached to it.
V37.15
======
* Added task-relative information tracking. This means that from now on the
library is a `SINGLE-TASK-LIBRARY'. If your code spawns a sub-task that
requires the use of `BGUI' then this sub-task must open the library
itself. It may not share the base pointer with the main-task.
* Added the WINDOW_UniqueID attribute to give a window a unique ID of your
choise. This ID is used by the task-relative information tracking to
store the window size/position even when you dispose of the object and
re-generate it.
* Added the LVM_SORT method for re-sorting the entries in a listview
object. Also added the SortList() macro in bgui_macros.h for this purpose.
* Made the flag bits of the frameclass and labelclass also available as
boolean tags. This allows for easier switching of single flags.
* BUG FIX: The lvma_Entry field of the lvmAddSingle structure was defined
as (APTR *) while it should be (APTR).
V37.16
======
* You can now reset the knob of a sliderclass or propclass object to it's
initial setting by pressing the right mouse button before releasing the
left-button.
* Added the WINDOW_Window attribute to enable you to obtain a pointer to
the window structure of a windowclass object.
* Started keeping up with the source code revisions using the Revision
Control System (RCS) supplied with DICE 3.0.
V37.17
======
* BUG FIX: The buttonclass now takes the design size of a vectorclass image
into consideration when computing it's minimum size. Bug found by Wouter
van Oortmersen.
* BUG FIX: Fixed the rendering bug of objects on invisible pages. Bug found
by Paul Weterings.
* BUG_FIX: Fixed the enforcer hits of Infoclass objects in a Pageclass
object. Bug found by Paul Weterings.
* Added a XEN style button frame to the frame class. Also added some new
macros to the bgui_macros header specially for this purpose.
* Added XEN macros in the bgui_macros.h file for the checkbox and cycle
objects.
* Added the GROUP_BackFill attribute to supply a group backfill possibility
without a group frame.
* Added the BREQF_XEN_BUTTONS flag to supply the requester buttons with a
XEN style frame.
V37.18
======
* BUG FIX: The infoclass sometimes screwed up with text-styles. I'm not
sure if this was a bug in the infoclass itself but I have coded a
work-around to the problem.
* Optimized setting pens and drawmode in a rastport. Now the code checks
the pens and drawmode to see if it needs to change. Should speed up the
rendering somewhat.
* BUG FIX: When flushing the library from memory while one or more of the
classes failed to free could result in a GURU. This should not happen
anymore.
* Added the seperator class which adds the possibility to seperate groups
with a single 3D line with or without a title. Also added a couple of
macros to bgui_macros.h for this purpose.
V37.19
======
* BUG FIX: The stringclass by default used the wrong pens to render it's
contents. Now the correct pens are used by default keeping track of user
set pens.
* Added some simple macros for NewMenu definitions in the bgui_macros.h
header.
* BUG FIX: Drag-selecting menus would result in replying a non-existant
IntuiMsg (enforcer hits... GURUs... `ouch!')
* BUG FIX: Fixed a bug that caused rendering object labels in the wrong
color when the object was selected and the label was located outside the
object hit area.
* BUG FIX: The HorizSlider() macro was broken.
* BUG_FIX: Some classes screwed up computing their minimum size when the
label was located above or below the object. This should not happen
anymore.
* Extended the Listview class rendering hook result code. When the hook
returns non-NULL the class will see this as a string and render it. A
result code of NULL is ignored. Please read the LISTV_DisplayHook section
of the listviewclass.doc file for more information on this subject.
* Added hook-notification to the baseclass. Please refer to the
baseclass.doc file for more information on this subject.
* BUG FIX: Fixed a small bug in the tab-cycling code of the string class.
The bug caused non-tabcycling gadgets to notify the event-handler when it
was de-activated.
* BUG FIX: The AddEntrySelect() macro was broken.
* Added the LVM_LOCKLIST and LVM_UNLOCKLIST methods to the listview class.
These methods should have been in there from the beginning to prevent
strange results when somebody is fiddling with the listview while you are
changing one of it's entries.
* BUG FIX: While converting a text-editor I'm writing to `BGUI' I came
accross a buch of small bugs bugs in `BGUI'. These (I shall not list
them) should be fixed now.
* BUG FIX: When using a shared window port for the `BGUI' windows it would
happen that the event handler did not get the initial IDCMP_ACTIVEWINDOW
message because the port is added to the window after it is opened. Now
the code will manually activate the window when the WA_Active tag is TRUE
after the port has been added.
V37.20
======
* Changed the behaviour of the WINDOW_UniqueID tag when the
WINDOW_PosRelBox tag is also used. Please refer to the WINDOW_UniqueID
section of the windowclass.doc file for more information.
* Added some extra code to ensure that the window sizing-gadget size is
computed correctly. This will ensure the correct operation with patches
like SysIHack. One note about SysIHack... When using the PGA_NewLook
feature SysIHack renderes the proportional gadget left&and up from the
intended location and to big and it ignores the PGA_Borderless tag. I
would report this to the author of SysIHack if only I knew who Mr. BOOPSI
was :)
* BUG FIX: The progress class now checks frame thickness before filling the
indicator.
* BUG FIX: Fixed the PACKPENS() macro in bgui_macros.h. Docs clearly state
"packed as two WORDs into a longword" but as it seems it should be two
bytes in a word? Am I wrong???
* BUG FIX: After testing BGUI on another public screen with a BACKGROUNDPEN
different from 0 it came to my attention that BGUI had some problems with
this. Now all rendering should occure OK with a different BACKGROUNDPEN
than 0. I have fixed the labelclass and vectorclass and added a
backfill-hook (WA_BackFill) to the windowclass to fix these problems.
* Added a pop-up menu option to the cycle class. Also added a couple of new
macros to bgui_macros.h to support this new option. Suggested by Jim
Cooper.
* The infoclass does not clip the text anymore when it won't fit. Now it
simply renders as much text as will fit in the area.
* Removed the text class completely. It was not a necessary class since the
infoclass can do the most important things that the text class could do.
The info class even does a better job at it. This also means that I
finally got rid of all rastport-clipping.
* The complete GUI is rendered in a buffer bitmap so that it can be made
visible in a single blit. This looks much smoother than rendering visible
on-screen. If a buffer cannot be allocated the rendering occures
on-screen.
* BUG FIX: It was possible to size an empty group to 0x0 which lead to
potentially dangerous situations. I have made all RectFill() that are
performed safe which means that the rectangle specified is checked for
wierd values.
V37.21
======
* Changed the imagery of the cycle gadget when it is in Popup mode. It is
not the best of imagery but it works. If anybody has a better idea let me
know.
* BUG FIX: A window with an ID and positioned relative to a rectangle would
be placed wrong if the window was to big for the used font. This does not
happen anymore but windows which grow to big for the used font and have
to use the fall-back font will not remember it's size.
* BUG FIX: Fixed a big-fat-stupid-lame-bug in the external class. I failed
to aply rule number one when writing a BOOPSI dispatcher by not using the
__geta4 (__saveds) qualifier. Bug found by Paul Weterings.
* BUG FIX: Using a frame and/or a label on the master-group caused the
rendering of this frame and/or label to be overwritten. Bug found by Paul
Weterings.
* Changed Xen frame rendering so that you get "rounded" corners. Looks much
better.
* Made the LISTV_Top attribute gettable as it should have been al along.
* BUG FIX: Some IDCMP bits where not accessable with an IDCMP hook. Should
be fixed now.
* Added the EXT_NoRebuild attribute to handle external gadgetclasses which
are smart enough to handle a resize themselves. Suggested by Paul
Weterings.
* BUG FIX: The stringclass rendered through the active page when it's
contents was changed. This also happened when the gadget was not located
on the active page. Bug found by Paul Weterings.
* Added a method to the groupclass to insert members at any place into an
already existing group. Suggested by Paul Weterings.
* The cycleclass notification (in popup mode) is now delayed until the menu
window is closed. Suggested by Paul Weterings.
* The pageclass now also renders the current page in a buffer before it is
shown. Note that this is only true when the page to show is a group.
Suggested by Paul Weterings.
V37.22
======
* BUG FIX: LISTV_MakeVisible and LISTV_Select did not make the item
visible. Bug found by Paul Weterings.
* Added a couple of macros to create non-fixed size checkbox objects.
Suggested by Paul Weterings.
* Made the WINDOW_Screen and WINDOW_PubScreenName settable when the window
is closed. Suggested by Paul Weterings.
* BUG FIX: The Popup menu of a Popup-Cycle object would not open on the
correct screen when the window in which it resided was not located on the
default public screen. Bug found by Paul Weterings.
* BUG FIX: Erasing the title area of a seperatorclass object did not yield
the desired result when the area-pattern of the rastport was not cleared.
* BUG FIX: After running tests with memoration it came to my attention that
the re-size oprations where not working properly if the buffer rastport
could not be allocated.
V37.23
======
* Enhanced listview class scrolling a bit. The old routines had a lot of
overhead because they simple re-rendered the complete list even if the
top only changed one or two places.
* Switching pages in a pageclass object looks smoother now.
* Most small allocations are now made in memory pools instead of allocating
them directly from the system memory pool.
* Changed the operation of the WINDOW_SigMask, WINDOW_AppMask and
COMM_SigMask attributes. Instead of OR'ing the mask value to the storage
field the mask value is set now.
* Added the WINDOW_Bounds attribute which can be used to open a window at
the place and width the size that you want. Suggested by Paul Weterings.
* Initial Public Beta Release... (30.09.94)
V37.24
======
* Added the BT_HelpText and WINDOW_HelpText attributes to pop a requester
with a help text instead of having to use AmigaGuide. for small help.
This also results in a new BGUI catalog (version 2).
* BUG FIX: BGUI did not recognize language changes. Now each time BGUI
needs to access localized strings the catalog is refreshed before
actually accessing the strings. This results in the strings always being
in the preferred language.
* Added the GROUP_EqualWidth and GROUP_EqualHeight attributes to make the
members of a group all have the same minimum width and or height.
* Made the WINDOW_Bounds attribute settable with OM_SET. You can set it
when the window is closed or opened. Suggested by Paul Weterings.
Future
******
This is a list of known bugs and quirks. Please read this before you start
sending me bug reports and suggestions.
`BUG' = A bug that is still present.
`SUG' = A suggestion which might be implemented in the future.
`REV' = Revision and/or fine-tuning that still needs to be done.
`MAY' = Maybe...
* `BUG' - The MX class still can't be controlled by the keyboard. There is
bug in the code which seems to prevent this from working the way it
should.
* `BUG' - The infoclass screws up computing it's minimum dimensions when
the last thing in the text is a command sequence. Should not be a real
problem since it is bullshit to end a string with a command sequence.
* `SUG' - Automatic, aspect-ratio dependant thick-thin framing. Suggested by
Paul Weterings.
* `SUG' - Add a method to the listview class that enables the programmer to
manipulate single entries in whichever way necessary. Suggested by Magne
Oestlyngen.
* `SUG' - A Palette selector class. External? Suggested by Paul Weterings.
* `REV' - `BGUI' gadgets on intuition requesters is `NOT' supported yet.
* `REV' - The commodity class could use some cleaning up. I'm not really
satisfied with it as it is.
* `REV' - The format of the library and class documentation files suck. I
should convert them to "real" autodoc format or amigaguide files.
* `REV' - Error reporting. It's OK that a window failed to open or an
object failed to create but it would be nice to know why. Both numeric
and textual error descriptions should be made available.
* `REV' - Adding method, conditional and hook notification to the window
class to. This will allow notification to happen on the application task
instead of the input.device task.
* `REV' - Adding a method to the listview class to move entries up&down in
the list.
* `REV' - Work on the menus. For now it is not possible to dynamically add
items, add notification or help files to the menus. This really sucks.
* `REV' - Try to cut down on the code size. Although, all things
considering, BGUI is not excessive in size I'de like to see it smaller.
* `MAY' - Letting the window backfill hook optionally make use of the
preferred workbench window backfill pattern or picture.
* `MAY' - Fonts and images in the info class.
* `MAY' - Add a posibility to "snapshot" window sizes to disk. Should this
be up to the application programmer? Suggested by Paul Weterings.
* `MAY' - Take the layout engine of BGUI and make a seperate shared/link
library out of it. This would result in a +/- 10 KByte shared/link
library with the same functionality as the BGUI layout engine. Maybe this
will satisfy those people who are always bitching and complaining about
GUI engine libraries.
Thanks To
*********
The author would like to extend a big thank you to the following people for
their valuable help:
Bjorn Reese, Jim Cooper, Jim Karczewski, Keith Christopher, Michael
Wiedmer, Michiel Willems, Magne Oestlyngen, Magnus Enarsson, Martin Bischoff,
Parrish Heywood, Patrick van Beem, Paul Hill, Paul McLachlan, Paul Weterings,
Per Harald Myrvang, Ranulf Doswell, Zachary A Forsyth.
Thanks should also go to:
* All the folks at `O.I.C'. Obvious Implementations Corporation. This
software is completely developed using DICE in the registered version and
later on the commercial version.
* Francesco Devitt for MemLeak. A remarkable simple but very useful tool ;)
* Reinhard Spisser and Sebastiano Vigna for their wonderful Makeinfo which
was used to generate this AmigaGuide./ASCII documentation.
* Bryce Nesbitt and Michael Sinz for Enforcer. The best bug-hunter for the
Amiga.
Index
*****
* Menu:
* Disclaimer: Disclaimer.
* Features: Features.
* Future: Future.
* History: History.
* Installation: Installation.
* Introduction: Introduction.
* Keyboard & Mouse: Keyboard & Mouse.
* License: License.
* Preface: Preface.
* Read Me: Read Me.
* Requirements: Requirements.
* Thanks To: Thanks To.
* V37.11: V37.11.
* V37.12: V37.12.
* V37.13: V37.13.
* V37.14: V37.14.
* V37.15: V37.15.
* V37.16: V37.16.
* V37.17: V37.17.
* V37.18: V37.18.
* V37.19: V37.19.
* V37.20: V37.20.
* V37.21: V37.21.
* V37.22: V37.22.
* V37.23: V37.23.
* V37.24: V37.24.